package sk.naive.talker.props;

import java.util.*;

/**
 *
 * @author <a href="mailto:virgo@naive.deepblue.sk">Richard "Virgo" Richter</a>
 * @version $Revision: 1.10 $ $Date: 2007-05-07 10:34:20 $
 */
public interface PropertyStore {
	Object get(String property) throws PropertyStoreException;
	void set(String property, Object value) throws PropertyStoreException;
	Map<String,Object> getProperties();

	/**
	 * Returns serializable set containing all valid values for this property.
	 * <p>
	 * Some properties does not have known set of valid values - then null is returned.
	 * Properties with defined set of valid values are called enumerated properties.
	 * @param key property key
	 * @return serializable set of all valid values for specified property
	 * @see EnumeratedProperty
	 */
	Property getProperty(String key);
}
